package br.com.sgmf.service;

import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.sgmf.dao.VeiculoDAO;
import br.com.sgmf.model.HistoricoVeiculo;
import br.com.sgmf.model.Veiculo;

@Service
public class VeiculoService {

	@Autowired
	private VeiculoDAO veiculoDAO;

	public void saveOrUpdate(Veiculo veiculo) {
		if (veiculo.getId() == null) {
			veiculoDAO.save(veiculo);
		} else {
			veiculoDAO.update(veiculo);
		}
	}

	public void delete(Veiculo veiculo) {
		veiculoDAO.delete(veiculo);
	}

	public Veiculo findById(Integer id) {
		return veiculoDAO.findById(id);
	}

	public List<Veiculo> findAll() {
		return veiculoDAO.findAll();
	}

	public List<Veiculo> findByPlaca(String placa) {
		return veiculoDAO.findByPlaca(placa);
	}

	public List<Veiculo> search(String placa) {
		if (StringUtils.isBlank(placa)) {
			return veiculoDAO.findAll();
		} else {
			return veiculoDAO.findByPlaca(placa);
		}
	}

	public List<HistoricoVeiculo> findBetweenDate(Date inicio, Date fim,
			String placa) {
		return veiculoDAO.findBetweenDate(inicio, fim, placa);
	}
}
